.pe-switch {
    --pe-switch-on-color: var(--pe-color-primary);
    --pe-switch-off-color: var(--pe-color-placeholder);
}

.pe-switch {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    font-size: 14px;

    .pe-switch-main {
        display: flex;
        min-width: 40px;
        height: 20px;
        border-radius: 10px;
        transition: all .5s;
        position: relative;

        .pe-switch-item {
            position: absolute;
            height: 100%;
            border-radius: 50%;
            left: 0;
            aspect-ratio: 1;
            background-color: #ffffff;
            display: flex;
            justify-content: center;
            align-items: center;
            transition: all .3s;
            overflow: hidden;
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .pe-switch-input {
            position: absolute;
            width: 0;
            height: 0;
            margin: 0;
            opacity: 0;
        }
    }

    .is-checked {
        .pe-switch-item {
            left: calc(100% - 16px);
        }
    }

    .pe-switch-on-text,
    .pe-switch-off-text {
        display: flex;
        justify-content: center;
        align-items: center;
        transition: all .3s;
    }

    .pe-switch-on-text {
        margin-left: 5px;
    }

    .pe-switch-off-text {
        margin-right: 5px;
    }
}

.pe-switch+.pe-switch {
    margin-left: 10px;
}

.pe-switch-small {
    font-size: 12px;

    .pe-switch-main {
        min-width: 30px;
        height: 16px;
        border-radius: 8px;
    }

    .is-checked {
        .pe-switch-item {
            left: calc(100% - 12px);
        }
    }
}

.pe-switch-large {

    .pe-switch-main {
        min-width: 50px;
        height: 24px;
        border-radius: 12px;
    }

    .is-checked {
        .pe-switch-item {
            left: calc(100% - 20px);
        }
    }
}